<?php

//require_once 'captcha/kcaptcha.php';
require_once 'captcha/DkLabCaptcha.php';

/**
 * Фильтр, выдающий в браузер код капчи.
 *
 */
class Kernel_Filter_Captcha extends Kernel_Filter 
{

    /**
     * Переменная сессии, в которой запоминается правильно введенное значение.
     *
     */
    const SESSION_VAR = 'CAPTCHA_REPEAT';

    /**
     * Запускает фильтр.
     *
     */
    public function process() 
    {
        //$captcha = new KCAPTCHA;
        $captcha = new DkLabCaptcha;
        if (isset($_SESSION[self::SESSION_VAR])) {
            $captcha->setKeyString($_SESSION[self::SESSION_VAR]);
        }
        self::clear();
        $captcha->output();
        $_SESSION['captcha-string'] = $captcha->getKeyString();
    }

    /**
     * Сохраняет правильно введенное значение.
     *
     * @param   string  $value
     */
    static public function store($value) 
    {
        $_SESSION[self::SESSION_VAR] = $value;
    }

    /**
     * Очищает правильно введенное значение.
     *
     */
    static public function clear() 
    {
        unset($_SESSION[self::SESSION_VAR]);
    }
    
}
